package io.renren.modules.pet.service;

import io.renren.common.service.CrudService;
import io.renren.modules.pet.vo.PetCollectVO;
import io.renren.modules.pet.dto.PetCollectDTO;
import io.renren.modules.pet.entity.PetCollectEntity;

import java.util.List;

/**
 * 宠物收藏表
 *
 * @author zwp zwp
 * @since 1.0.0 2025-03-11
 */
public interface PetCollectService extends CrudService<PetCollectEntity, PetCollectVO> {
    
    /**
     * 保存
     * @param petCollectDTO
     */
    void save(PetCollectDTO petCollectDTO);
    
    /**
     * 修改
     * @param petCollectDTO
     */
    void update(PetCollectDTO petCollectDTO);

    /**
     * 根据宠物id查询
     * @param petSendId
     * @return
     */
    List<PetCollectVO> getByPetId(Long petSendId);

    /**
     * 根据用户id查询
     * @param userId
     * @return
     */
    List<PetCollectVO> getByUserId(Long userId);

    /**
     * 根据用户id和宠物id查询
     * @param userId
     * @param petId
     * @return
     */
    PetCollectVO getByUserPetId(Long userId, Long petId);

    /**
     * 取消收藏
     * @param dto
     */
    void cancelCollectPet(PetCollectDTO dto);
}